package leetcode.code;

/**
 * @author : zx
 * @version V1.0
 */
public class 圆和矩形是否有重叠 {

    class Solution {
        /*
         * 关键在于 找到矩形边上距 圆心最近的距离
         * 这个距离 d^2 = dx^2 + dy^2
         * 而 dx 或 dy 不能为负数（为负数取0），所以一定是矩形边上某点
         * 然后判断 d^2 < radius^2 ?
         */
        public boolean checkOverlap(int radius, int x_center, int y_center, int x1, int y1, int x2, int y2) {

            int dx = x1>x_center ? x1-x_center : x2<x_center ? x_center-x2 : 0;
            int dy = y1>y_center ? y1-y_center : y2<y_center ? y_center-y2 : 0;
            return (dx*dx + dy*dy) <= radius*radius;
        }
    }
}
